home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Acorn RISC PD-CD 1
/
Acorn RISC PD-CD 1.iso
/
languages
/
dde
/
_pc
/
h
/
print
< prev
next >
Wrap
Text File
|
1992-04-30
|
12KB
|
298 lines
(*
* Title: print.h
* Purpose: access to printer driver facilities
*
*)
#ifndef print__h
#define print__h
const
print_PostScript = 0;
print_FX80compatible = 1;
type print_identity_ptr = ^print_identity;
print_identity = integer;
const
print_colour = $0000001; (* colour *)
print_limited = $0000002; (* if print_COLOUR bit set, full colour *)
(* range not available *)
print_discrete = $0000004; (* only a discrete colour set supported *)
print_NOFILL = $0000100; (* cannot handle filled shapes well *)
print_NOTHICKNESS = $0000200; (* cannot handle thick lines well *)
print_NOOVERWRITE = $0000400; (* cannot overwrite colours properly *)
(* const print_SCREENDUMP clashes with function print_screendump *)
#define print_SCREENDUMP $1000000 (* supports PDriver_ScreenDump *)
print_TRANSFORM = $2000000; (* supports arbitrary transformations *)
(* (else only axis-preserving ones). *)
type print_features_ptr = ^print_features;
print_features = integer;
type print_infostr_ptr = ^print_infostr;
print_infostr =
record
version : short; (* version number *100 *)
identity : short; (* driver identity (eg 0=Postscript,1=FX80) *)
xres, yres : integer; (* x, y resolution (pixels/inch) *)
features : integer; (* see print_features *)
description : string; (* printers supported, <=20chars + null *)
xhalf, yhalf : integer; (* halftone resolution (repeats/inch) *)
number : integer (* configured printer number *)
end;
type print_box_ptr = ^print_box;
print_box =
record
x0, y0, x1, y1 : integer
end;
type print_pagesizestr_ptr = ^print_pagesizestr;
print_pagesizestr =
record
xsize, ysize : integer;
(* size of page, including margins (1/72000 inch) *)
bbox : print_box
(* bounding box of printable portion (1/72000 inch) *)
end;
type print_transmatstr_ptr = ^print_transmatstr;
print_transmatstr =
record
xx, xy, yx, yy : integer
end;
type print_positionstr_ptr = ^print_positionstr;
print_positionstr =
record
dx, dy : integer
end;
(* ----------------------------- print_info ----------------------------
* Description: Read details of current printer driver (version,
* resolution, features etc).
*
* Parameters: Pointer to print_infostr structure to be filled in.
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_info(i : print_infostr_ptr) : error; extern;
(* ----------------------------- print_setinfo -------------------------
* Description: Reconfigure current printer driver.
*
* Parameters: Pointer to the print_infostr structure to be used to
* update the printer driver configuration.
* Returns: Any error returned from the system call.
* Other Info: The version, identity and description fields are not
* used. Leave bit 0 clear in the features field for
* monochrome, set bit 0 for colour.
*)
function print_setinfo(i : print_infostr_ptr) : error; extern;
(* ----------------------------- print_checkfeatures -------------------
* Description: Checks the features of a printer, returning an error if
* the current printer does not have the specified
* features.
*
* Parameters: int mask -- set bits correspond to the features
* of interest (bits as print_features)
* int value -- required values of the bits of interest
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_checkfeatures(mask, value : integer) : error; extern;
(* ----------------------------- print_pagesize ------------------------
* Description: Find how large paper and print area is.
*
* Parameters: Pointer to the print_pagesizestr structure to be
* filled in.
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_pagesize(p : print_pagesizestr_ptr) : error; extern;
(* ----------------------------- print_setpagesize ---------------------
* Description: Set how large paper and print size is.
*
* Parameters: Pointer to the print_pagesizestr structure to be
* used to update the printer driver.
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_setpagesize(p : print_pagesizestr_ptr) : error; extern;
(* ----------------------------- print_selectjob -----------------------
* Description: Make a given print job the current one.
*
* Parameters: int job -- file handle for selected job, or 0
* to leave no print job selected
* char *title -- title string for job
* int *oldjobp -- pointer to integer to fill in with
* file handle of previously active job
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_selectjob(job : integer;
title : string;
var oldjobp : integer) : error; extern;
(* ----------------------------- print_currentjob ----------------------
* Description: Get the file handle of the current print job.
*
* Parameters: Pointer to integer to be filled in with the
* file handle of the current print job.
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_currentjob(var curjobp : integer) : error; extern;
(* ----------------------------- print_endjob --------------------------
* Description: End a print job normally.
*
* Parameters: File handle of print job to be ended.
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_endjob(job : integer) : error; extern;
(* ----------------------------- print_abortjob ------------------------
* Description: End a print job without any further output.
*
* Parameters: File handle of print job to be aborted.
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_abortjob(job : integer) : error; extern;
(* ----------------------------- print_canceljob -----------------------
* Description: Stops a specified print job from printing.
*
* Parameters: File handle of print job to be cancelled.
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_canceljob(job : integer) : error; extern;
(* ----------------------------- print_reset ---------------------------
* Description: Abort all print jobs.
*
* Parameters: void
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_reset : error; extern;
(* ----------------------------- print_selectillustration --------------
* Description: Makes the specified print job the current one,
* and treats it as an illustration.
*
* Parameters: int job -- file handle for selected job, or 0
* to leave no print job selected
* char *title -- title string for job
* int *oldjobp -- pointer to integer to fill in with
* file handle of previously active job
* Returns: Any error returned from the system call.
* Other Info: The difference with print_selectjob is that an
* error is generated if the job does not contain
* one page, and certain printer drivers (such as
* the PostScript printer driver) generate
* different output for illustrations.
*)
function print_selectillustration(job : integer;
title : string;
var oldjobp : integer) : error; extern;
(* ----------------------------- print_giverectangle -------------------
* Description: Specify a rectangle to be printed.
*
* Parameters: ident -- rectangle identification word
* Pointer to structure specifying rectangle to be
* plotted (OS coordinates)
* Pointer to structure specifying transformation
* matrix (fixed point, 16 binary places)
* Pointer to structure containing the position of
* bottom left of rectangle on page (1/72000 inch)
* bgcol -- background colour for this rectangle, &BBGGRRXX
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_giverectangle(ident : integer;
r : print_box_ptr;
m : print_transmatstr_ptr;
p : print_positionstr_ptr) : error; extern;
(* ----------------------------- print_drawpage ------------------------
* Description: This should be called after specifying all rectangles
* to be plotted on the current page with
* print_giverectangle.
*
* Parameters: copies -- number of copies
* sequ -- zero or pages sequence number within document
* page -- zero or a string containing a textual page number
* (no spaces)
* Pointer to structure to be filled in with the rectangle
* to print
* more -- pointer to integer to be filled in with the
* number of copies left to print
* ident -- pointer to integer to be filled in with the
* rectangle identification word
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_drawpage(copies : integer;
sequ : integer;
page : string;
clip : print_box_ptr;
var more : integer;
var ident : integer) : error; extern;
(* ----------------------------- print_getrectangle --------------------
* Description: Get the next print rectangle.
*
* Parameters: Pointer to the structure to be filled in with the clip
* rectangle
* more -- pointer to integer to be filled in with the number
* of rectangles left to print
* ident -- pointer to integer to be filled in with the
* rectangle identification word
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_getrectangle(clib : print_box_ptr;
var more : integer;
var ident : integer) : error; extern;
(* ----------------------------- print_screendump ----------------------
* Description: Output a screen dump to the printer.
*
* Parameters: File handle of file to receive the dump.
* Returns: Any error returned from the system call.
* Other Info: none.
*)
function print_screendump(job : integer) : error; extern;
#endif